﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AMS.DD35.Common;
using AMS.DD35.Common.Data;

namespace AMS.DD35.WebMVP.Views
{
    public interface ICharacterView
    {
        // hidden fields
        string UserName { get; set; }
        long CharacterID { get; set; }

        string CharacterName { get; set; }

        // base stats
        byte BaseStrength { get; set; }
        byte BaseDexterity { get; set; }
        byte BaseConstitution { get; set; }
        byte BaseIntelligence { get; set; }
        byte BaseWisdom { get; set; }
        byte BaseCharisma { get; set; }

        MoralAlignment MoralAlignment { get; set; }
        EthicalAlignment EthicalAlignment { get; set; }

        short RaceID { get; set; }
        //string Enthnicity { get; set; }

        short DeityID { get; set; }
        string Sex { get; set; }
        string HairColor { get; set; }
        string EyeColor { get; set; }
        byte Height { get; set; }
        string HeightUnits { get; set; }
        byte Weight { get; set; }
        string WeightUnits { get; set; }

        // inherent gains
        Dictionary<int, Ability> InherentAbilityGains { get; set; }

        // List<CharacterLevel>
        IEnumerable<string> Classes { get; set; }

        // skill points distribution
        Dictionary<Skill, int[][]> SkillPoints { get; set; } // skill, level, points

        // feats
        IEnumerable<string> Feats { get; set; }

        int Experience { get; set; }

        // coinage
        int Copper { get; set; }
        int Silver { get; set; }
        int Gold { get; set; }
        int Platinum { get; set; }

        string StatusMessage { get; set; }

        CharacterData GetCharacterData();

        void LoadCharacterData(CharacterData characterData);
    }
}
